<template>
	<div style="height:3000px">
		<!-- 工单领料 -->

			<v-card>
				<v-card-title>
					<v-row >
						<v-col cols="3">
							<v-btn class="ml-2"  tile color="primary" @click.stop="AddDialog()">
								新增
							</v-btn>
							<!--<v-btn class="ml-2"  tile color="error" @click.stop="deleteOrder()">
								删除
							</v-btn>-->
						</v-col>
						<v-col cols="7" >
								<v-row >
									<v-col cols="2" >
										<v-text-field label="单据号" v-model="Ssourceorder" placeholder="单据号" dense outlined>
										</v-text-field>
									</v-col>
										
									<v-col cols="2" >
										<v-text-field label="物料代码" v-model="Sitemcode" placeholder="物料代码" dense outlined>
										</v-text-field>
									</v-col>
								
									
									<v-col cols="2" >
										<v-text-field label="物料名称" v-model="Sitemname" placeholder="物料名称" dense outlined>
										</v-text-field>
									</v-col>
									
									<v-col cols="2" >
										<v-text-field label="项目号" v-model="Sproject" placeholder="项目号" dense outlined>
										</v-text-field>
									</v-col>
									
									<v-col cols="2">
										<v-btn depressed color="primary" @click="searchinfo()" tile>查询</v-btn>
									</v-col>
								</v-row>																												
						</v-col>
						
						<v-col cols="2" align="end">
							<v-btn dark color="blue lighten-3" @click="refreshApps">
								<v-icon dark>mdi-refresh-circle</v-icon>刷新
							</v-btn>
						</v-col>
						
					</v-row>					
				</v-card-title>
				
				<v-alert dense text color="blue-grey"></v-alert>
				
				<v-data-table :headers="HeaderList" :items="DataList" small dense
					fixed-header item-key="id"  class="text-no-wrap" show-select  v-model="selected"
					loading-text="正在加载请稍等......" :loading="OrderLoading"
					:options.sync="OrderOptions" :footer-props="vuetifyDefaultPage"
					:server-items-length="OrderTotalCount">
					<template v-slot:item.checkflag="{ item }">
						<v-chip v-if="item.checkflag == 0" small label color="info"
							
						>
							未审核
						</v-chip>
						<v-chip v-else-if="item.checkflag == 1" color="primary" small label
							
						>
							盘盈
						</v-chip>
						<v-chip v-else-if="item.checkflag == 2" color="error" small label
							
						>
							盘亏
						</v-chip>
						<v-chip v-else color="success" small label
							
						>
							正常
						</v-chip>
					</template>
					<template v-slot:item.actions="{ item }">
			      <v-btn tile color="warning" small @click.stop="EditDialog(item)">
							<v-icon left>
								mdi-pencil
							</v-icon>
							编辑
			      </v-btn>
			    </template>
				</v-data-table>
			</v-card>
	
	

		<!-- 对话框 -->
		<v-dialog v-model="AddOrEditDialog" max-width="1000px">
			<v-card>
				<v-card-title class="text-h5">
				  {{DialogHeader}}
				</v-card-title>
				<v-card-text>
				  <div class="mb-12">
				  	<v-row dense>
				  		<v-col cols="12">
				  			<v-row>
									<v-col cols="6">
										<v-text-field label="单据编号"  clearable :rules="[rules.required]"
											v-model="DialogBill.sourceorder">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="项目号"  clearable :rules="[rules.required]"
											v-model="DialogBill.project">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="仓库"  clearable :rules="[rules.required]" 
											v-model="DialogBill.warehouse">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="库区"  clearable :rules="[rules.required]" 
											v-model="DialogBill.zonecode">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="物料编号"  clearable :rules="[rules.required]"
											v-model="DialogBill.itemcode">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="物料名称"  clearable :rules="[rules.required]"
											v-model="DialogBill.itemname">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="批次"  clearable :rules="[rules.required]" 
											v-model="DialogBill.lot">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="库存数量"  clearable :rules="[rules.required]" 
											v-model="DialogBill.locationqty">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="盘点数量"  clearable :rules="[rules.required]" 
											v-model="DialogBill.countqty">
										</v-text-field>
									</v-col>
									<v-col cols="6">
										<v-text-field label="盘差数量"  clearable :rules="[rules.required]" 
											v-model="DialogBill.diffqty">
										</v-text-field>
									</v-col>
									
									
									<v-col cols="6">
										<v-select  v-model="DialogBill.checkflag" :items="Scheckflag"
															item-text="name"
										          item-value="value"
											 label="审核标识">
										</v-select>
									</v-col>
				  			</v-row>
				  		</v-col>
				  	</v-row>
				  </div>
				</v-card-text>
				<v-card-actions>
				  <v-spacer></v-spacer>
					
				  <v-btn
				    color="green darken-1"
				    text
				    @click="confirmOrder()"
				  >
				    提交
				  </v-btn>
					
				  <v-btn
				    color="green darken-1"
				    text
				    @click="AddOrEditDialog = false"
				  >
				    关闭
				  </v-btn>
				</v-card-actions>
			</v-card>
		</v-dialog>
	</div>
</template>

<script>
export default {
  name: 'wms_summary_cyclecount_diff',
  data: () => ({
		  Ssourceorder:'',
		  Sitemcode:'',
		  Sitemname:'',
		  Sproject:'',
			flagitems:[
				{name: '所有', value:-1},
				{name: '未审核', value:0},
				{name: '盘盈', value:1},
				{name: '盘亏', value:2},
			],
			Scheckflag:[
				{name: '未审核', value:0},
				{name: '盘盈', value:1},
				{name: '盘亏', value:2},
			],
  		AddOrEditDialog: false,
  		HeaderList: [
  			{ text: '单据编号',value: 'sourceorder'},
  			{ text: '项目号', value: 'project' },
  			{ text: '仓库', value: 'warehouse' },
  			{ text: '库区', value: 'zonecode' },
  			{ text: '物料编号', value: 'itemcode' },
  			{ text: '物料名称', value: 'itemname' },
  			{ text: '批次', value: 'lot' },
  			{ text: '库存数量', value: 'locationqty' },
  			{ text: '盘点数量', value: 'countqty' },
  			{ text: '盘差数量', value: 'diffqty' },				
  			{ text: '盘盈盘亏', value: 'checkflag' },
  			{ text: '审核时间', value: 'checktime' },
  			/*{ text: '创建人', value: 'created_byname' },
  			{ text: '创建时间', value: 'created_time' },
  			{ text: '编辑人', value: 'updated_byname' },
  			{ text: '编辑时间', value: 'updated_time' },*/
  			{ text: '操作', value: 'actions' },
  		],
  		DialogBill:{
  			id:'',
  			dbid:'',
  			isavailable:true,
  			created_by:'',
  			created_byname:'',
  			updated_by:'',
  			updated_byname:'',
  			company:'',
  			created_time:'',
  			updated_time:'',
  			accountingbookcode:'',	
  									
  			sourceorder:'',
  			project:'',
  			warehouse:'',
  			zonecode:'',
  			itemcode:'',
  			itemname:'',	
  			lot:'',
  			locationqty:'',
  			countqty:'',
  			diffqty:'',				
  			checkflag:0,
  			checktime:"",
  		},
  		DataList: [],
			selected:[],
  		checkList: [],
			vuetifyDefaultPage: {
				'items-per-page-text': '每页个数',
				'items-per-page-options': [10, 20, 50, 100]
			},
			OrderLoading: true,
			OrderTotalCount: 0,
			OrderOptions: {
				//页数
				page: 1,
				//每页行数
				itemsPerPage: 10
			},
  		/*pageModel: {
  			loading: true,
  			pagination: {
  				pageNumber: 1,
  				pageSize: 10,
  				//总页数
  				totalPages: 0,
  				//总记录数
  				totalRecords: 0
  			}
  		},*/
			DialogHeader:"",
  		leftCheckMaterialValid: false,
  		//领料单 表单信息
  		leftMaterialRequestOrderModel: {},
  		leftMaterialValid: true,
  		//领料单 需要数量规则
  		rules: {
  		    required: value => !!value || '值不能为空！',
  		    counter: value => value.length <= 20 || '字符长度不能超过20!',
  				num: value => value > 0 || '值要大于0！',
  				true: value => {
  					const pattern = /^[0-9]*$/
  					return pattern.test(value) || '请输入合法数字!'
  				}
  		 }
  	}),
  
  	created() {  
			//获取单据信息
  		this.loadDataList();
  	},
		watch: {
			OrderOptions: {
				handler() {
					this.loadDataList()
				},
				deep: true
			}
		},
  	methods: {
  		//搜索
  		search() {
  			this.loadCuttingDetailList()
  		},
  		//加载单据信息
  		loadDataList() {
  			var that = this;
				that.OrderLoading = true;
				that.DataList = [];
  			this.$httpRequest({
  				url: `WMS/WmsBillCountSum/GetBillListByPage?pageIndex=${this.OrderOptions.page}&pageSize=${this.OrderOptions.itemsPerPage}`,
  				method: 'get'
  			}).then(function(response) {
  				if (response.status == 1) {
  					that.DataList = response.data.result;
  					that.OrderTotalCount = response.data.pagination.totalRecords;
  					that.OrderLoading = false;
  				} else {
  					that.$message.error(response.info);
  				}
  			})
  		},
  		// 打开编辑对话框
  		EditDialog(item) {
  			this.DialogBill.id = item.id;
  			this.DialogBill.dbid = item.dbid;
  			this.DialogBill.isavailable = item.isavailable;
  			this.DialogBill.created_by = item.created_by;
  			this.DialogBill.created_byname = item.created_byname;
  			this.DialogBill.updated_by = item.updated_by;
  			this.DialogBill.updated_byname = item.updated_byname;
  			this.DialogBill.company = item.company;
  			this.DialogBill.created_time = item.created_time;
  			this.DialogBill.updated_time = item.updated_time;
  			this.DialogBill.accountingbookcode = item.accountingbookcode;
  			this.DialogBill.sourceorder = item.sourceorder;
  			this.DialogBill.project = item.project;
  			this.DialogBill.warehouse = item.warehouse;
  			this.DialogBill.zonecode = item.zonecode;
  			this.DialogBill.itemcode = item.itemcode;
  			this.DialogBill.itemname = item.itemname;
  			this.DialogBill.locationqty = item.locationqty;
  			this.DialogBill.countqty = item.countqty;
  			this.DialogBill.diffqty = item.diffqty;
  			this.DialogBill.checkflag = item.checkflag;				
  			this.DialogBill.checktime = item.checktime;
  			this.DialogHeader = "编辑盘点统计单";
  			this.AddOrEditDialog = true;
  		},
  		// 打开新增对话框
  		AddDialog() {
  			this.DialogBill.sourceorder = "";
  			this.DialogBill.project = "";
  			this.DialogBill.warehouse = "";
  			this.DialogBill.zonecode = "";
  			this.DialogBill.itemcode = "";
  			this.DialogBill.itemname = "";
  			this.DialogBill.lot = "";
  			this.DialogBill.locationqty = "";
  			this.DialogBill.countqty = "";
  			this.DialogBill.diffqty = "";				
  			this.DialogBill.checkflag = 0;
  			this.DialogBill.checktime = "";
  			this.DialogHeader = "新增盘点统计单";
  			this.AddOrEditDialog = true;
  		},
			//分页跳转
			/*goPage(){
				this.loadDataList();
				that.pageModel.loading = true;
			},*/
  		//提交
  		confirmOrder() {
  			var that = this;
  			if(that.DialogHeader == "新增盘点统计单")
  			{
  				this.$httpRequest({
  					url: `/WMS/WmsBillCountSum/Add`,
  					method: 'post',
  					data:{					
  							sourceorder : that.DialogBill.sourceorder,
  							project : that.DialogBill.project,
  							warehouse : that.DialogBill.warehouse,
  							zonecode : that.DialogBill.zonecode,
  							itemcode : that.DialogBill.itemcode,
  							itemname : that.DialogBill.itemname,
  							lot : that.DialogBill.lot,
  							locationqty : that.DialogBill.locationqty,
  							countqty : that.DialogBill.countqty,
  							diffqty : that.DialogBill.diffqty,								
  							checkflag : that.DialogBill.checkflag,
  							checktime : that.DialogBill.checktime,
  					}
  				}).then(function(response) {
  				
  					if (response.status == 1) {
  						that.loadDataList();
  						that.AddOrEditDialog = false;
  						that.$message.success("新增盘点统计单成功！");
  					} else {
  						that.$message.error(response.info);
  					}
  				})
  			}
  			else
  			{
  				this.$httpRequest({
  					url: `/WMS/WmsBillCountSum/Update`,
  					method: 'post',
  					data:{		
  							id : that.DialogBill.id,
  							dbid : that.DialogBill.dbid,
  							isavailable : that.DialogBill.isavailable,
  							created_by : that.DialogBill.created_by,
  							created_byname : that.DialogBill.created_byname,
  							updated_by : that.DialogBill.updated_by,
  							updated_byname : that.DialogBill.updated_byname,
  							company : that.DialogBill.company,
  							created_time : that.DialogBill.created_time,
  							updated_time : that.DialogBill.updated_time,
  							accountingbookcode : that.DialogBill.accountingbookcode,
  							sourceorder : that.DialogBill.sourceorder,
  							project : that.DialogBill.project,
  							warehouse : that.DialogBill.warehouse,
  							zonecode : that.DialogBill.zonecode,
  							itemcode : that.DialogBill.itemcode,
  							itemname : that.DialogBill.itemname,
  							lot : that.DialogBill.lot,
  							locationqty : that.DialogBill.locationqty,
  							countqty : that.DialogBill.countqty,
  							diffqty : that.DialogBill.diffqty,								
  							checkflag : that.DialogBill.checkflag,
  							checktime : that.DialogBill.checktime,
  					}
  				}).then(function(response) {
  				
  					if (response.status == 1) {
  						that.loadDataList();
  						that.AddOrEditDialog = false;
  						that.$message.success("编辑盘点统计单成功！");
  					} else {
  						that.$message.error(response.info);
  					}
  				})
  			}
  			
  		},
  		//取消 取消领料单
  		cancelOrder() {
  			this.AddOrEditDialog = false;
  		},
			deleteOrder(){
				var that = this;
				for(var i=0; i<that.selected.length; i++)
				{
					this.$httpRequest({
						url: `/WMS/WmsBillCountSum/Delete/${that.selected[i].id}`,
						method: 'delete'											
					}).then(function(response) {					
						if (response.status == 1) {							
							that.$message.success("删除成功！");							
						} else {
							that.$message.error("删除失败！");
						}
					})
				}
				that.loadDataList();
			},
			searchinfo(){			
				var that = this;
				that.OrderLoading = true;
				that.DataList = [];
				this.$httpRequest({
					url: `WMS/WmsBillCountSum/Search?Ssourceorder=${this.Ssourceorder}&Sitemcode=${this.Sitemcode}&Sitemname=${this.Sitemname}&Sproject=${this.Sproject}&pageIndex=${this.OrderOptions.page}&pageSize=${this.OrderOptions.itemsPerPage}`,
					method: 'get'
				}).then(function(response) {
					if (response.status == 1) {
						that.DataList = response.data.result;
						that.OrderTotalCount = response.data.pagination.totalRecords;
						that.OrderLoading = false;
					} else {
						that.$message.error(response.info);	
					}
				})
			},
			refreshApps(){
				this.Ssourceorder = "";
				this.Sitemcode = "";
				this.Sitemname = "";
				this.Sproject = "";
				this.selected = [];
				this.HOrderOptions.page = 1;
				this.loadDataList();
			},
			
  	}
  
  }

</script>

<style>
	$select-small-chips-dense-selections-min-height{
		height:40px;
	}
</style>
